<ExtensionModel>

	<ExtensionPoint path="/MonoDevelop/Debugging/DebuggerEngines">
		<Description>Debug session factories. Specified classes must implement MonoDevelop.Debugger.IDebuggerEngine</Description>
		<ExtensionNode name="DebuggerEngine" type="MonoDevelop.Debugger.DebuggerEngineExtensionNode"/>
	</ExtensionPoint>

	<ExtensionPoint path="/MonoDevelop/Debugging/Evaluators">
		<Description>Expression evaluator factories. Specified classes must implement MonoDevelop.Debugger.IExpressionEvaluator</Description>
		<ExtensionNode name="ExpressionEvaluator" type="MonoDevelop.Debugger.ExpressionEvaluatorExtensionNode"/>
	</ExtensionPoint>

	<ExtensionPoint path="/MonoDevelop/Debugging/ValueVisualizers">
		<Description>Value visualizers. Specified classes must extend MonoDevelop.Debugger.ValueVisualizer</Description>
		<ExtensionNode name="Type"/>
	</ExtensionPoint>

	<ExtensionPoint path="/MonoDevelop/Debugging/DebugValueConverters">
		<Description>Debug value converters. Specified classes must extend MonoDevelop.Debugger.DebugValueConverter&lt;T&gt;</Description>
		<ExtensionNode name="Type"/>
	</ExtensionPoint>

	<ExtensionPoint path="/MonoDevelop/Debugging/InlineVisualizers">
		<Description>Inline visualizers. Specified classes must extend MonoDevelop.Debugger.InlineVisualizer</Description>
		<ExtensionNode name="Type"/>
	</ExtensionPoint>
	<ExtensionPoint path="/MonoDevelop/Debugging/PreviewVisualizers">
		<Description>Preview visualizers. Specified classes must extend MonoDevelop.Debugger.PreviewVisualizer</Description>
		<ExtensionNode name="Type" />
	</ExtensionPoint>
	<Extension path = "/MonoDevelop/Ide/Pads">
		<Category id="Debug" _name="Debug Pads">
			<Pad id = "MonoDevelop.Debugger.BreakpointPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-breakpoints" class = "MonoDevelop.Debugger.BreakpointPad" _label="Breakpoints" group="main"/>
			<Pad id = "MonoDevelop.Debugger.LocalsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-locals" class = "MonoDevelop.Debugger.LocalsPad" _label="Locals"  group="main"/>
			<Pad id = "MonoDevelop.Debugger.WatchPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-watch" class = "MonoDevelop.Debugger.WatchPad" _label="Watch"  group="main"/>
			<Pad id = "MonoDevelop.Debugger.ImmediatePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.StackTracePad/Center Bottom" icon="md-view-debug-immediate" class = "MonoDevelop.Debugger.ImmediatePad" _label="Immediate"/>
			<Pad id = "MonoDevelop.Debugger.StackTracePad" defaultLayout="Debug" defaultPlacement = "MonoDevelop.Debugger.WatchPad/Right Bottom" icon="md-view-debug-call-stack" class = "MonoDevelop.Debugger.StackTracePad" _label="Call Stack" />
			<Pad id = "MonoDevelop.Debugger.ThreadsPad" defaultLayout="Debug" defaultPlacement = "Bottom" icon="md-view-debug-threads" class = "MonoDevelop.Debugger.ThreadsPad" _label="Threads"  group="main"/>
		</Category>
	</Extension>

	<Extension path="/MonoDevelop/Ide/WorkbenchLayouts">
		<Layout id="Debug" _name="Debug" />
	</Extension>

	<Extension path="/MonoDevelop/Debugging/ValueVisualizers">
		<Type class="MonoDevelop.Debugger.Visualizer.TextVisualizer" />
		<Type class="MonoDevelop.Debugger.Visualizer.PixbufVisualizer" />
		<Type class="MonoDevelop.Debugger.Visualizer.CStringVisualizer" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/StartupHandlers">
		<Class class="MonoDevelop.Debugger.Initializer" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/Commands/Project">
		<Command id = "MonoDevelop.Debugger.DebugCommands.Debug"
				defaultHandler = "MonoDevelop.Debugger.DebugHandler"
				icon = "md-bug"
				shortcut = "F5"
				macShortcut = "Meta|Return F5"
				_description = "Start debugging"
				_label = "Start _Debugging" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.DebugEntry"
				defaultHandler = "MonoDevelop.Debugger.DebugEntryHandler"
				icon = "md-bug"
				_description = "Debug current project"
				_label = "Start D_ebugging Item"
				_displayName = "Start Debugging (Current Project)" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/Commands">
		<Category _name = "Debug" id = "Debug">

		<Command id = "MonoDevelop.Debugger.DebugCommands.DebugApplication"
				defaultHandler = "MonoDevelop.Debugger.DebugApplicationHandler"
				_label = "Debug Application..." />
		<Command id = "MonoDevelop.Debugger.DebugCommands.AttachToProcess"
				defaultHandler = "MonoDevelop.Debugger.AttachToProcessHandler"
				_label = "Attach to Process..." />
		<Command id = "MonoDevelop.Debugger.DebugCommands.Detach"
				defaultHandler = "MonoDevelop.Debugger.DetachFromProcessHandler"
				_label = "Detach" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.Pause"
				defaultHandler = "MonoDevelop.Debugger.PauseDebugHandler"
				shortcut = "Control|Break"
				_label = "Pause"
				_description = "Pause Execution"
				macShortcut = "Alt|Meta|P Alt+Meta+F15"
				icon="md-pause-debug"/>
		<Command id = "MonoDevelop.Debugger.DebugCommands.Continue"
				defaultHandler = "MonoDevelop.Debugger.ContinueDebugHandler"
				_label = "Continue"
				_description = "Continue Execution"
				icon="md-continue-debug"/>
		<Command id = "MonoDevelop.Debugger.DebugCommands.StepOver"
				defaultHandler = "MonoDevelop.Debugger.StepOverHandler"
				_label = "Step Over"
				_description = "Step Over"
				shortcut = "F10"
				macShortcut = "Shift|Meta|O F10"
				icon="md-step-over-debug"/>
		<Command id = "MonoDevelop.Debugger.DebugCommands.StepInto"
				defaultHandler = "MonoDevelop.Debugger.StepIntoHandler"
				_label = "Step Into"
				_description = "Step Into"
				shortcut = "F11"
				macShortcut = "Shift|Meta|I Meta+F11"
				icon="md-step-into-debug" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.StepOut"
				defaultHandler = "MonoDevelop.Debugger.StepOutHandler"
				_label = "Step Out"
				_description = "Step Out"
				shortcut = "Shift|F11"
				macShortcut = "Shift|Meta|U Shift+Meta+F11"
				icon="md-step-out-debug"/>
		<Command id = "MonoDevelop.Debugger.DebugCommands.NewBreakpoint"
				defaultHandler = "MonoDevelop.Debugger.NewBreakpointHandler"
				_label = "New Breakpoint…"
				icon = "md-breakpoint-new" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.NewFunctionBreakpoint"
				defaultHandler = "MonoDevelop.Debugger.NewFunctionBreakpointHandler"
				_label = "New Function Breakpoint"
				icon = "md-breakpoint-new" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.NewCatchpoint"
				defaultHandler = "MonoDevelop.Debugger.NewCatchpointHandler"
				_label = "New Exception Catchpoint"
				icon = "md-catchpoint-new" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ShowBreakpoints"
				defaultHandler = "MonoDevelop.Debugger.ShowBreakpointsHandler"
				_label = "View Breakpoints"
				icon = "md-view-debug-breakpoints"
				macShortcut = "Alt+Meta+B" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.RemoveBreakpoint"
				defaultHandler = "MonoDevelop.Debugger.RemoveBreakpointHandler"
				_label = "Remove Breakpoint" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ShowBreakpointProperties"
				defaultHandler = "MonoDevelop.Debugger.ShowBreakpointPropertiesHandler"
				_label = "Edit Breakpoint…"
				_displayName = "Edit Breakpoint Properties" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ToggleBreakpoint"
				_label = "Toggle Breakpoint"
				icon = "md-breakpoint"
				defaultHandler = "MonoDevelop.Debugger.ToggleBreakpointHandler"
				shortcut = "F9"
				macShortcut = "Meta|\ F9" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.EnableDisableBreakpoint"
				_label = "Enable/Disable Breakpoint"
				_displayName = "Enable or Disable Breakpoint"
				defaultHandler = "MonoDevelop.Debugger.EnableDisableBreakpointHandler"
				icon = "md-breakpoint-on-off"
				shortcut = "Control|F9"
				macShortcut = "Alt|Meta|/ Meta+F9" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.DisableAllBreakpoints"
				_label = "Enable or Disable All Breakpoints"
				_displayName = "Enable or Disable All Breakpoints"
				icon = "md-breakpoint-disable-all"
				defaultHandler = "MonoDevelop.Debugger.DisableAllBreakpointsHandler" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ClearAllBreakpoints"
				defaultHandler = "MonoDevelop.Debugger.ClearAllBreakpointsHandler"
				icon = "md-clear"
				_label = "Remove All Breakpoints"
				macShortcut = "Shift+Meta+F9" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ShowDisassembly"
				_label = "Show Disassembly"
				defaultHandler = "MonoDevelop.Debugger.ShowDisassemblyHandler" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ExpressionEvaluator"
				_label = "Expression Evaluator"
				shortcut = "Shift|F9"
				defaultHandler = "MonoDevelop.Debugger.ExpressionEvaluatorCommand" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ShowCurrentExecutionLine"
				_label = "Show Current Execution Line"
				icon = "md-go-to-line"
				shortcut = "Alt|*"
				defaultHandler = "MonoDevelop.Debugger.ShowCurrentExecutionLineCommand" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.AddWatch"
				_description = "Add expression to watch pad"
				_label = "Add watch" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.StopEvaluation"
				_description = "Stops the execution of the expression being evaluated by the debugger"
				defaultHandler = "MonoDevelop.Debugger.StopEvaluationHandler"
				_label = "Stop Evaluation" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.RunToCursor"
				defaultHandler = "MonoDevelop.Debugger.RunToCursorHandler"
				_label = "Run To Cursor"
				_description = "Run To Cursor"
				shortcut = "Control|F10"
				macShortcut = "Meta+F10" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.SetNextStatement"
				defaultHandler = "MonoDevelop.Debugger.SetNextStatementHandler"
				_label = "Set Next Statement"
				_description = "Set Next Statement"
				shortcut = "Control|Shift|F10"
				macShortcut = "Shift+Meta+F10" />
		<Command id = "MonoDevelop.Debugger.DebugCommands.ShowNextStatement"
				_label = "Show Next Statement"
				defaultHandler = "MonoDevelop.Debugger.ShowNextStatementHandler"
				macShortcut = "Alt+*" />
		</Category>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/MainMenu/Run">
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.Debug" insertafter="MonoDevelop.Ide.Commands.ProjectCommands.Run"/>
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.Pause" insertafter="MonoDevelop.Ide.Commands.ProjectCommands.Stop"/>
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StopEvaluation" />
		<SeparatorItem id = "MonoDevelop.Debugger.ExternalDebuggingSection" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.DebugApplication" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.AttachToProcess" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.Detach" />
		<SeparatorItem id = "MonoDevelop.Debugger.SteppingSection" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StepOver" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StepInto" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StepOut" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ShowCurrentExecutionLine" />
		<SeparatorItem id = "MonoDevelop.Debugger.BreakpointsSection" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.NewBreakpoint" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.NewFunctionBreakpoint" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.NewCatchpoint" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ShowBreakpoints" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ToggleBreakpoint" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.EnableDisableBreakpoint" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.DisableAllBreakpoints" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ClearAllBreakpoints" />
		<SeparatorItem id = "MonoDevelop.Debugger.ToolsSection" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ShowDisassembly"/>
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ExpressionEvaluator" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/ContextMenu/ProjectPad">
		<Condition id="ItemType" value="IBuildTarget">
			<CommandItem id = "MonoDevelop.Debugger.DebugCommands.DebugEntry" insertafter="MonoDevelop.Ide.Commands.ProjectCommands.RunEntry" />
		</Condition>
	</Extension>

	<Extension path = "/MonoDevelop/TextEditor/ContextMenu/Editor">
		<SeparatorItem id = "DebuggerSectionStart" insertafter="Separator1" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.SetNextStatement" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ShowNextStatement"  />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.RunToCursor" />
		<CommandItem id = "MonoDevelop.Debugger.DebugCommands.ExpressionEvaluator" />
		<SeparatorItem id = "DebuggerSectionEnd" />
	</Extension>

	<Extension path = "/MonoDevelop/Core/ExecutionModes/Debug">
		<ModeSetType id="MonoDevelop.Debugger" class="MonoDevelop.Debugger.DebugExecutionModeSet"/>
	</Extension>

	<Extension path = "/MonoDevelop/Core/StockIcons">
		<StockIcon stockid = "md-exception-caught-template" resource = "exception-caught-template-16.png" size = "Menu"/>
		<StockIcon stockid = "md-continue-debug" resource = "continue-16.png" size = "Menu"/>
		<StockIcon stockid = "md-pause-debug" resource = "pause-16.png" size = "Menu"/>
		<StockIcon stockid = "md-step-into-debug" resource = "step-in-16.png" size = "Menu"/>
		<StockIcon stockid = "md-step-out-debug" resource = "step-out-16.png" size = "Menu"/>
		<StockIcon stockid = "md-step-over-debug" resource = "step-over-16.png" size = "Menu"/>
		<StockIcon stockid = "md-view-debug-breakpoints" resource = "pad-breakpoints-16.png" size="Menu" />
		<StockIcon stockid = "md-view-debug-call-stack" resource = "pad-call-stack-16.png" size="Menu" />
		<StockIcon stockid = "md-view-debug-locals" resource = "pad-locals-16.png" size="Menu" />
		<StockIcon stockid = "md-view-debug-threads" resource = "pad-threads-16.png" size="Menu" />
		<StockIcon stockid = "md-view-debug-watch" resource = "pad-watch-16.png" size="Menu" />
		<StockIcon stockid = "md-view-debug-immediate" resource = "pad-immediate-16.png" size="Menu" />
		<StockIcon stockid = "md-prefs-debugger" resource = "prefs-debugger-16.png" size="Menu" />
		<StockIcon stockid = "md-stack-pointer" resource = "stack-pointer-16.png" size="Menu" />
		<StockIcon stockid = "md-gutter-execution" resource = "gutter-execution-15.png" size="Menu" imageid="807" />
		<StockIcon stockid = "md-gutter-stack" resource = "gutter-stack-15.png" size="Menu" imageid="386" />
		<StockIcon stockid = "md-gutter-tracepoint" resource = "gutter-tracepoint-15.png" size="Menu" imageid="3175" />
		<StockIcon stockid = "md-gutter-tracepoint-disabled" resource = "gutter-tracepoint-disabled-15.png" size="Menu" imageid="3174" />
		<StockIcon stockid = "md-gutter-tracepoint-invalid" resource = "gutter-tracepoint-invalid-15.png" size="Menu" imageid="3178" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/CommandBar">
		<ItemSet id = "Debug" _label="Debugger">
			<CommandItem id = "MonoDevelop.Debugger.DebugCommands.Continue" />
			<CommandItem id = "MonoDevelop.Debugger.DebugCommands.Pause" />
			<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StepOver" />
			<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StepInto" />
			<CommandItem id = "MonoDevelop.Debugger.DebugCommands.StepOut" />
		</ItemSet>
	</Extension>

	<Extension path = "/MonoDevelop/Ide/GlobalOptionsDialog/Projects">
		<Section id="Debugger" _label="Debugger" fill="true" class="MonoDevelop.Debugger.DebuggerOptionsPanel" icon="md-prefs-debugger" />
	</Extension>

	<Extension path = "/MonoDevelop/Ide/TextEditorExtensions">
		<Class class="MonoDevelop.Debugger.ExceptionCaughtTextEditorExtension" />
	</Extension>

	<Extension path = "/MonoDevelop/ProjectModel/Gui/ItemOptionPanels/Common">
		<Condition id="ItemType" value="Solution">
			<Section id="DebugSourceFiles" _label="Debug Source Files" icon="md-prefs-debugger" fill="true"
				class="MonoDevelop.Debugger.DebugSourceFilesOptionsPanel" />
		</Condition>
	</Extension>
	<Extension path="/MonoDevelop/Ide/Composition">
		<Assembly file="MonoDevelop.Debugger.dll"/>
	</Extension>
</ExtensionModel>

